package Ep03_HashTable._0001;

import java.util.HashMap;
import java.util.Map;

/**
 * @author Jimmy Zhan WORKSTATION
 * @date 2023/3/14 9:48
 * 说明： 哈希解法复习
 */

public class Review01 {
    public int[] twoSum(int[] nums, int target){
        Map<Integer, Integer> hashMap = new HashMap<>();
        // 这里可以不用创建并初始化，而是在return res时一并创建初始化了，如下：
        // return new int[]{hashMap.get(target - nums[i]), i};
        // 如此使用匿名数组返回可以节约少量的时空代价
        int[] res = new int[2];
        for (int i = 0; i < nums.length; i++) {
            if (hashMap.containsKey(target - nums[i])){
                res[0] = hashMap.get(target - nums[i]);
                res[1] = i;
                return res;
            } else {
                hashMap.put(nums[i], i);
            }
        }
        return null;
    }
}
